/* ----------------------------------------------------------------------------
* File: api_event_handler.h
*
* Desc: Interface for Skype API events
*
* Created: 30/07/2011, by Alexey Korshunov
* ---------------------------------------------------------------------------- */
#ifndef _API_EVENT_DISPATCHER_API_EVENT_HANDLER_H_
#define _API_EVENT_DISPATCHER_API_EVENT_HANDLER_H_

#import "Skype4COM.dll" named_guids

namespace SkypeProtection
{
	class APIEventHandler
	{
	public:
		virtual ~APIEventHandler() 
		{
		}

		virtual void OnCommand(SKYPE4COMLib::ICommand* pCommand) = 0;
		virtual void OnReply(SKYPE4COMLib::ICommand* pCommand) = 0;
		virtual void OnError(SKYPE4COMLib::ICommand* pCommand, LONG Number, BSTR Description) = 0;
		virtual void OnAttachmentStatus(SKYPE4COMLib::TAttachmentStatus Status) = 0;
		virtual void OnConnectionStatus(SKYPE4COMLib::TConnectionStatus Status) = 0;
		virtual void OnUserStatus(SKYPE4COMLib::TUserStatus Status) = 0;
		virtual void OnOnlineStatus(SKYPE4COMLib::IUser* pUser, SKYPE4COMLib::TOnlineStatus Status) = 0;
		virtual void OnCallStatus(SKYPE4COMLib::ICall* pCall, SKYPE4COMLib::TCallStatus Status) = 0;
		virtual void OnCallHistory() = 0;
		virtual void OnMute(VARIANT_BOOL Status) = 0;
		virtual void OnMessageStatus(SKYPE4COMLib::IChatMessage* pMessage, SKYPE4COMLib::TChatMessageStatus Status) = 0;
		virtual void OnMessageHistory(BSTR Username) = 0;
	};
}

#endif // _API_EVENT_DISPATCHER_API_EVENT_HANDLER_H_